// 给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组，并返回该子数组的长度。

var findMaxLength = function(nums) {
  let map = new Map().set(0,0),res = 0 
  for( let i = 0 , zero = 0 , one = 0; i < nums.length ; i ++ ){
      nums[i] ? one ++ : zero ++
      let key = zero - one
      map.has(key) ? ( res = Math.max(res,i + 1- map.get(key))) : map.set(key,i+1)
      console.log(zero, one, i+1, map.get(key), res)
  }  
  console.log(map)
  return res
}

nums = [0,1,0,1,1,1,0,0,0]
console.log(findMaxLength(nums))
